The present invention relates to the field of computing devices, and more particularly to power consumption reduction techniques in small, portable computing devices such as personal digital assistants and cell phones.
Portable electronic computing systems have evolved over the years from ROMized embedded systems with a small amount of RAM to the now conventional flash and RAM based systems that more resemble general purpose computing systems, having the ability to store and execute various application programs. The conventional three main factors considered in the design of these systems are cost, size, and power consumption. In recent years, the desire to load and execute application programs and other functions has driven the design towards a general operating system with ability to operate web browsers, portable code such as Java™, and other applications. A Java operating environment for such devices has been standardized, and is known as Java 2 Micro Edition (J2ME).
Presently, conventional small computing devices, including smart cellular phones, personal digital assistants (PDAs), and palm-top computers, use a non-volatile flash memory (NVM) to store a boot kernel and other operating system elements, application software, user interface (UI) elements, and data. For runtime scratchpad memory, it is typical to use a dynamic random access memory (DRAM). DRAM, since it uses only one transistor per bit/cell, can be significantly smaller than comparable static RAM, which uses 6 transistors per cell/bit. DRAM is also substantially less expensive. However, a DRAM needs constant refreshing to maintain the data stored therein. The constant refreshing consumes power. Since at least any portion of the DRAM with code or data must be refreshed, as small computing devices become more sophisticated and are able to execute larger applications and user interface elements, the power consumption of DRAM will increase as well by virtue of the memory size of the DRAM increasing.
As mentioned, a static RAM may be used, but at substantially higher cost and volume. The DRAM must be refreshed even when only a small amount of the code instantiated in the memory is being executed, which can be very inefficient. Therefore there is a need for a means by which a DRAM can be used, but the power consumption of the DRAM may be reduced